#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>


//void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
//    int end1 = nums1Size - 1;
//    int end2 = n-1;
//    while (end2 + 1)
//    {
//        int i = 0;
//        for (i = 0; i < m; i++)
//        {
//            if (nums2[end2] <= nums1[i])
//            {
//                int j = 0;
//                for (j = m - 1; j >= i; j--)
//                {
//                    nums1[j + 1] = nums1[j];
//                }
//                nums1[i] = nums2[end2];
//                m = i;
//
//            }
//        }
//            
//          
//                nums1[end1] = nums2[end2];
//                end1--;
//            
//        
//        end2--;
//    }
//
//}

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    int end1 = m - 1;
    int end2 = n - 1;
    int dest = nums1Size - 1;
    while (end1 >= 0 && end2 >= 0)
    {
        if (nums2[end2] >= nums1[end1])
        {
            nums1[dest] = nums2[end2];
            dest--;
            end2--;
        }
        else
        {
            nums1[dest] = nums1[end1];
            dest--;
            end1--;
        }

    }
   /* if (end2 < 0)
    {
        return;
    }
    if (end1 <0)
    {
        int i = 0;
        for (i = 0; i <=dest; i++)
        {
            nums1[i] = nums2[i];
        }
    }*/
    while (end2 >= 0)
    {
        nums1[dest--] = nums2[end2--];
    }

}

int main()
{
    int nums1[6] = { 3,4,5,0,0,0 };
    int nums2[3] = { 1,2,2 };
    int nums1Size = sizeof(nums1) / sizeof(nums1[0]);
    int nums2Size = sizeof(nums2) / sizeof(nums2[0]);
    merge(nums1, nums1Size, 3, nums2, nums2Size, 3);



    return 0;
}